package avicit.im.lantop.basic.useconfig.service;

import avicit.im.lantop.basic.useconfig.domain.LantopHighSet;
import avicit.platform6.core.jdbc.Page;

import java.util.List;
import java.util.Map;

/**
 * <p>金航数码科技有限责任公司</p>
 * <p>作者：胡光昌</p>
 * <p>邮箱：huguangc@avicit.com</p>
 * <p>创建时间： 2014-10-16 下午6:23:52 </p>
 * <p>类说明：利用配置模块接口</p>
 * <p>修改记录： </p>
 */
public interface UseConfigService {

	/**
	 * 初始化系统业务参数配置信息
	 * @param sysId
	 * @param deptId
	 * @param orgId
	 * @return
	 */
	List<Map<String,Object>> selectUserConfig(String sysId, String deptId, String orgId);

	/**
	 * 初始化高级设置数据
	 * @param param void
	 * @throws
	 */
	public void doInitHighSetDatas(Map<String, Object> param);

	/**
	 * 获取高级设置的信息
	 * @author 胡光昌
	 * @param page
	 * @param param void
	 * @throws
	 */
	void findSetInfo(Page<Map<String, Object>> page, Map<String, Object> param);

	/**
	 * 保存高级设置数据
	 * @author 胡光昌
	 * @param lantopHighSet void
	 * @throws
	 */
	void saveHighSet(LantopHighSet lantopHighSet);

	/**
	 *	更新高级设置数据
	 * @param highSet
	 */
	void updateHighSet(Map<String, Object> map);

	/**
	 * 校验高级设置数据重复
	 * @param map
	 * @return
	 */
	int getCount(Map<String, Object> map);

	/**
	 * 获取配置的数据
	 * @param currentOrgId
	 * @param currentDeptId
	 * @return Map<String,Object>
	 * @throws
	 */
	Map<String, String> findConfig(String orgId,
                                   String deptId);

	/**
	 * 查询关键字id
	 * @param String
	 * @return String
	 * @throws
	 */
	String findIdByKeyWord(String keyWord);
	
	/**
	 * 查询关键字id
	 * @param String
	 * @return String
	 * @throws
	 */
	String findIdByKeyWordForOrgId(String keyWord, String orgId);

	
	/**
	 * 默认利用天数
	 * @param map
	 * @param defaultUseDaysid void
	 * @throws
	 */
	void updatedefaultUseDaysKeyValue(Map<String, String> map, String defaultUseDaysid);
	/**
	 * 默认续借天数
	 * @param map
	 * @param defaultBorrowDaysid void
	 * @throws
	 */
	void updatedefaultBorrowDaysKeyValue(Map<String, String> map, String defaultBorrowDaysid);
	/**
	 * 默认续借次数
	 * @param map
	 * @param defaultBorrowNumid void
	 * @throws
	 */
	void updatedefaultBorrowNumKeyValue(Map<String, String> map, String defaultBorrowNumid);
	/**
	 * 借还预警天数
	 * @param map
	 * @param borrowForcastDaysid void
	 * @throws
	 */
	void updateborrowForcastDaysKeyValue(Map<String, String> map, String borrowForcastDaysid);
	/**
	 * 默认借阅类型（1：原件、2：复制件）
	 * @param defaultBorrowTypeid
	 * @param defaultBorrowTypeValue void
	 * @throws
	 */
	void updatededefaultBorrowTypeKeyValue(String defaultBorrowTypeid, String defaultBorrowTypeValue);
	/**
	 * 预约队列数量
	 * @param map
	 * @param forcastQueueNumid void
	 * @throws
	 */
	void updateforcastQueueNumKeyValue(Map<String, String> map, String forcastQueueNumid);
	/**
	 * 预约超时时间
	 * @param map
	 * @param forcastOvertimeid void
	 * @throws
	 */
	void updateforcastOvertimeKeyValue(Map<String, String> map, String forcastOvertimeid);
	/**
	 * 个人消息最大记录数
	 * @param map
	 * @param psnMsgMaxRcdsid void
	 * @throws
	 */
	void updatepsnMsgMaxRcdsKeyValue(Map<String, String> map, String psnMsgMaxRcdsid);
	/**
	 * 发件服务器
	 * @param map
	 * @param sendSvrid void
	 * @throws
	 */
	void updatesendSvrKeyValue(Map<String, String> map, String sendSvrid);
	/**
	 * 发件端口
	 * @param map
	 * @param sendPortid void
	 * @throws
	 */
	void updatesendPortKeyValue(Map<String, String> map, String sendPortid);
	/**
	 * 收件服务器
	 * @param map
	 * @param rcvSvrid void
	 * @throws
	 */
	void updatercvSvrKeyValue(Map<String, String> map, String rcvSvrid);
	/**
	 * 收件端口
	 * @param map
	 * @param rcvPortid void
	 * @throws
	 */
	void updatercvPortKeyValue(Map<String, String> map, String rcvPortid);
	/**
	 * 发件人账户
	 * @param map
	 * @param sendEmailCountid void
	 * @throws
	 */
	void updateSendEmailCountKeyValue(Map<String, String> map, String sendEmailCountid);
	/**
	 * 发件人密码
	 * @param map
	 * @param passwordid void
	 * @throws
	 */
	void updatePasswordKeyValue(Map<String, String> map, String passwordid);
	/**
	 * 修改高级设置启动
	 * @param isHighSetid void
	 * @throws
	 */
	void updateValueStart(String isHighSetid);
	/**
	 * 修改高级设置未启动
	 * @param isHighSetid void
	 * @throws
	 */
	void updateValueEnd(String isHighSetid);
	/**
	 * 修改启动预约借阅为启动
	 * @param isBorrowForcastid void
	 * @throws
	 */
	void updateisBorrowForcastKeyValueStart(String isBorrowForcastid);
	/**
	 * 修改启动预约借阅为未启动
	 * @param isBorrowForcastid void
	 * @throws
	 */
	void updateisBorrowForcastKeyValueEnd(String isBorrowForcastid);
	/**
	 * 修改邮件通知为启动
	 * @param isEmailid void
	 * @throws
	 */
	void updateisEmailKeyValueStart(String isEmailid);
	/**
	 * 修改邮件通知为未启动
	 * @param isEmailid void
	 * @throws
	 */
	void updateisEmailKeyValueEnd(String isEmailid);
	
	/**
	 * 获取催还预警天数
	 * @author 郭亮
	 * @return
	 * @throws Exception String
	 */
	public String getBorrowForcastDays() throws Exception;

	/**
	 * 新增利用配置数据信息
	 * @author zhaoxiaolong
	 * @param sysId
	 * @param orgId
	 * @param deptId
	 * @param useType
	 * @param defaultUseDays
	 * @param defaultBorrowDays
	 * @param defaultUrgeDays
	 * @return String
	 */
	public String createArchivalMessage(String sysId, String orgId, String deptId, String useType, String defaultUseDays, String defaultBorrowDays, String defaultUrgeDays, String appointmentArsDays);

	/**
	 * 删除本全宗下配置数据信息
	 * @param sysId
	 * @param deptId
	 * @param orgId
	 */
	void deleteUseData(String sysId, String deptId, String orgId);
}
